> PS: soit pas tonn si je rponds pas ce WE because LAN party + barbecue +
> lac ;-)

Ok, bah j'espre que c'tait chouette :)

J'ai test cette nouvelle version, c'est vraiment gnial :) Il n'y a plus un
seul ralentissement, ni de CPU consomm pour rien. J'ai enfin pu tester le
debugger en profondeur.
Voil une liste de remarques assez grosse, j'espre qu'elle pourra te donner
des ides et premettre de corriger des bugs. Certaines ides de trucs 
ajouter sont indispensables je pense, d'autres permettrait de vraiment
beaucoup acclerer le travail le debug sous TiEmu.

Les bugs :

* Pour le problme du crash avec la Titanium : il vient de la routine
dcrite dans le commentaire '[1]' de mon titanium-info.txt, qui dtermine
dynamiquement la taille de la RAM disponible.
Les blocs de 64ko de la RAM sont tests un  un pour voir s'ils sont valides
(criture puis lecture). Comme TiEmu mule pour l'instant des ghost spaces 
0x40000, 0x80000, etc. qui n'existent pas, ces blocs semblent valides et
l'AMS croit finalement avoir affaire  une RAM de 1Mo (tu as fait arrter
les reflets  0x100000 on dirait. Pour l'mulation des 89 standard/92+/V200,
il faudrait les faire arrter  0x200000 en fait).
Puis plus loin dans le code du reset, une boucle efface un grosse partie de
la RAM en utilisant la taille calcule par la routine prcdente : les
reflets sont aussi effacs, et donc les vecteurs  0x0+n le sont. Les
utilisations des vecteurs qui suivent feront ensuite planter l'AMS. Pour
corriger le problme, il suffit d'empcher l'criture dans les ghost spaces,
qui n'existent pas sur Titanium.
Il y a peut-tre d'autres problmes pour cette mulation de la Titanium,
mais il faut dj corriger a pour y voir plus clair.

* Lorsqu'un code breakpoint a t touch, impossible de faire un step ou un
step over ensuite (TiEmu crash).

* Si on ferme une fentre du dbugger, les choix cochs dans le menu Windows
de la fentre 'Code/Source' ne correspondent plus car ils ne sont pas mis 
jour.

* Ctrl+F dans la fentre Memory fait apparatre une petite zone de texte
ditable, je ne vois pas  quoi elle sert.

* Au dmarrage, la fentre Memory a deux onglets commenant  l'adresse 0,
je ne sais pas si c'est normal (un seul suffirait).

* lea $4C00,a0 est dssasembl en lea tios::CALC_TI89,A0 ? ( 0x8123B4 sur
Titanium) Pourquoi pas LCD_MEM ?

* L'onglet visible de la fentre memory n'est pas rafrachit aprs un 'Run
to cursor' ou un 'step' par exemple, il faut changer d'onglet pour forcer le
rafrachissement.

* Un 'step over' sur une instruction 'bra' doit srement mettre un
breakpoint temporaire juste derrire l'instruction. Il faudrait plutt qu'un
'step over' se comporte de la mme faon qu'un 'step' sur cette instruction.
Pareil pour un 'jmp' (je n'ai pas regard s'il y avait aussi le problme).

* Impossible de quitter TiEmu quand des breakpoints sont  chaque fois
touchs : TiEmu ne peut pas tre ferm tant que les fentres du dbugger ne
sont pas fermes, et les breakpoints rouvrent immdiatement les fentres du
dbugger.


Les trucs qui pourraient tre modifis :

* Le scroll des instructions vers le bas dans la fentre Code/Source : lors
du passage  l'cran d'aprs, on se perd (l'instruction slectionne devient
la premire). Peut-tre que seulement un demi-cran pourrait tre scroll ?.
Pareil pour la fentre Memory.

* Les fentres du dbogueur : il faudrait pouvoir toutes les rduire /
restaurer d'un coup, lorsque la fentre de l'image de la calc est rduite ou
restaure par exemple. Et est-ce que ce serait possible qu'une seule fentre
(ou 2 : une pour la calc et une pour le debugger) apparaisse dans la barre
des tches ? Parce que l a fait pas mal de monde et ce n'est pas trs
utile.

* Lors d'un set breakpoint dans la fentre Code / source, la slection
revient immdiatement  PC. Ce serait mieux qu'elle se place l o on a
plac / retir le breakpoint, a provoque un saut un peu gnant
actuellement.

* Il est assez difficile de savoir exactement ou on est dans la fentre
Memory avec des lignes de 16 octets. Il faudrait par exemple un affichage
quelque part de l'adresse de l'octet selectionn, sinon on se retrouve la
plupart du temps  recompter depuis le dbut de la ligne.

* L'adresse affiche dans la fentre Memory comme titre d'un onglet devrait
tre plutt l'adresse du premier octet affich (pour l'instant elle reste
constante), sinon elle ne correspond plus  rien quand on scroll.

* La fentre Code/Source est un peu trop petite au dmarrage de TiEmu, 2
instructions sont caches, la fentre doit tre  chaque fois ragrandie.

* Lorsque l'on fait un 'Run to cursor', tout reste immobile et on n'a pas
l'impression qu'il a t excut : en fait l'instruction courante et la
slection sont confondues, et seule la couleur de la slection apparat. Il
faudrait peut-tre une troisime couleur lorsque les deux sont confondues,
comme le fait VTI.


Les trucs qui pourraient tre ajouts  (sachant que les premiers sont les
plus indispensables) :

* Une fentre ou une zone dans une fentre affichant la pile manque vraiment
(un hexdump depuis a7).

* Une fonction de recherche dans la fentre Memory est indispensable.
L'idal est la fonction fournie par DB92 : on tape une squence d'octets en
hexa, ou une squence de caractres ASCII, aussi grande que l'on veut. VTI
lui ne permet que de chercher des octets/mots/long mots, aligns pour les
deux derniers en plus, c'est dommage. Il faudrait aussi une fonction (et son
raccourci clavier) 'search next' pour continuer la recherche, comme sous
DB92.

* Il manque vraiment "goto address" comme sous VTI dans la fentre Memory.

* Un "View memory" dans le menu clic-droit de Code / Source serait pratique,
qui ouvrirait un onglet dans la fentre Memory avec pour adresse
l'instruction clique (VTI ne l'a pas non plus, mais DB92 l'a).
De la mme manire une fonction  "view disassembly" dans Memory qui ferait
un "goto address" dans la fentre Code/Source vers l'adresse slectionne
serait trs pratique (la version de VTI de JM l'a, je ne sais plus pour la
version originale).

* Dans la fentre Memory, ce serait bien de pouvoir modifier une traine
d'octets successifs comme sous DB92. Sous DB92, on passe en mode dition en
appuyant sur 'E', puis on tape les octets digit par digit insrs un  un
avec le curseur qui avance, comme un diteur de texte. Je ne sais pas si
c'est faisable avec les widgets GTK utiliss actuellement.

* Des toggle buttons seraient pratiques plutt que du texte  diter,  la
manire des versions de VTI de Julien Muchembled, pour modifier les tats
des bits de SR dans la fentre Registers.

* Deux trucs trs simples qui serait trs pratique : dans la fentre
Registers, un menu clic droit sur les registres d'adresses qui permettrait
d'ouvrir un nouvel onglet dans la fentre Memory depuis l'adresse pointe
par le registre cliqu, ou de faire un 'goto address' dans la fentre
Code/Source vers cette adresse pointe.

* Un truc peut-tre un peu compliqu  raliser : une fentre (voir dans la
mme fentre que PC log), similaire  Trace, qui contiendrait une call stack
: les adresses des derniers jsr / bsr / FLine RomCalls / trap excuts, et
supprims de la liste lors des rts / rte.
Il faudrait faire attention au interruptions (pas de log de la call stack),
et aux retours de fonction qui peuvent tre fait  la main par certains
programmes en lisant le contenu de la pile (dans ces cas l, le depilage de
la call stack pourra tre mis  jour au prochain retour de fonction effectu
correctement, en regardant sur la pile  quel appelle rts / rte correspond).
Je regarde souvent les appels  la main sous VTI en lisant le contenu de la
pile, c'est extrment difficile de retrouver quelle sont les adresses de
retour.


Je suis trs content de ce que a donne actuellement, TiEmu est trs
prometteur.

++

Olivier Armand